﻿#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//void GetMemory(char** p, int num)
//{
//	*p = (char*)malloc(num);
//}
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(&str, 100);
//	strcpy(str, "hello");
//	printf(str);			//内存泄漏
//	//正确改法，需要对动态内存进行释放，同时将指针指向NULL
//	free(str);
//	str = NULL;
//}
//
//int main()
//{
//	Test();
//	return 0;
//}


//void Test(void)
//{
//	char* str = (char*)malloc(100);
//	strcpy(str, "hello");
//	free(str);			//动态内存已经被释放
//	str = NULL;
//	if (str != NULL)
//	{
//		strcpy(str, "world");//此处强行通过地址访问，属于非法调用
//		printf(str);
//	}
//}
//
//int main()
//{
//	Test();
//	return 0;
//}


//struct S 
//{
//	int i;
//	int arr[];
//}s;
//
//int main()
//{
//	struct S* ps = (struct S*)malloc(sizeof(s) + 20 * sizeof(int));			//柔性数组，可以通过动态内存来改变内存大小
//	if (ps == NULL)
//	{
//		perror("malloc");
//		return 1;
//	}
//
//	ps->i = 100;
//	printf("ps->i = %d\n", ps->i);
//	s.i = 200;
//	printf("s.i = %d\n", s.i);
//
//	int i = 0;
//	for (i; i < 10; i++)
//	{
//		ps->arr[i] = i + 1;
//	}
//
//	for (i = 0; i < 20; i++)
//	{
//		printf("%d ", ps->arr[i]);
//	}
//
//	free(ps);
//	ps = NULL;
//
//	return 0;
//}


//#include <stdio.h>
//int main()
//{
//	int a = 10000;
//	FILE* pf = fopen("test.txt", "wb");
//	fwrite(&a, 4, 1, pf);//⼆进制的形式写到⽂件中    文本文件是无法正常识别二进制的
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}


//int main()
//{
//	//FILE* fs = fopen("data.txt", "w");
//	//if (fs == NULL)
//	//{
//	//	perror("fopen");
//	//	return 1;
//	//}
//	//int i = 0;
//	//for (i = 'a'; i <= 'z'; i++)
//	//{
//	//	fputc(i, fs);
//	//}
//	FILE* fp = fopen("data.txt", "r");
//	int n = 0;
//	while ((n = fgetc(fp)) != EOF)
//	{
//		printf("%c ", n);
//	}
//	fclose(fp);
//	fp = NULL;
//
//	return 0;
//}



//int main()
//{
//	FILE* ps1 = fopen("data.txt", "w");
//	if (ps1 == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	int i = 0;
//	for (i='a'; i < 'e'; i++)
//	{
//		fputc(i,ps1);
//	}
//
//	return 0;
//}


//int main()
//{
//	FILE* pr = fopen("data.txt", "r");
//	if (pr == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	int ch = 0;
//	
//	while ((ch = fgetc(pr)) != EOF)
//	{
//		printf("%c ", ch);
//	}
//	fclose(pr);
//	pr = NULL;
//
//	return 0;
//}


int main()
{
	int ch = fgetc(stdin);
	fputc(ch,stdout);
	return 0;
}